<?php

/**
 * asistencia actions.
 *
 * @package    fisio-ud
 * @subpackage asistencia
 * @author     Johan AR <j3valentin@gmail.com>
 */
class asistenciaActions extends sfActions
{
  public function executeIndex(sfWebRequest $request)
  {
//    $this->FtUsuarioAsistencias = FtUsuarioAsistenciaQuery::create()->find();
    $criteria = new Criteria();
    $criteria->addAscendingOrderByColumn(FtUsuarioAsistenciaPeer::DIA_ID);
    $this->FtUsuarioAsistencias = FtUsuarioAsistenciaPeer::doSelectJoinSede($criteria);
    $this->days = FtUsuarioAsistenciaPeer::getDays();
  }

  public function executeShow(sfWebRequest $request)
  {
    $this->FtUsuarioAsistencia = FtUsuarioAsistenciaPeer::retrieveByPk($request->getParameter('id'));
    $this->forward404Unless($this->FtUsuarioAsistencia);
  }

  public function executeNew(sfWebRequest $request)
  {
    $asistencia = new FtUsuarioAsistencia();
    $asistencia->setUsuarioId($this->getUser()->getProfile()->getId());
    if ($request->hasParameter('dia'))
      $asistencia->setDiaId($request->getParameter('dia'));
    $this->form = new FtUsuarioAsistenciaForm($asistencia);
  }

  public function executeCreate(sfWebRequest $request)
  {
    $this->forward404Unless($request->isMethod(sfRequest::POST));
    
    $asistencia = new FtUsuarioAsistencia();
    $asistencia->setUsuarioId($this->getUser()->getProfile()->getId());
    if ($request->hasParameter('dia'))
      $asistencia->setDiaId($request->getParameter('dia'));
    $this->form = new FtUsuarioAsistenciaForm($asistencia);

    $this->processForm($request, $this->form);

    $this->setTemplate('new');
  }

  public function executeEdit(sfWebRequest $request)
  {
    $FtUsuarioAsistencia = FtUsuarioAsistenciaQuery::create()->findPk($request->getParameter('id'));
    $this->forward404Unless($FtUsuarioAsistencia, sprintf('Object FtUsuarioAsistencia does not exist (%s).', $request->getParameter('id')));
    $this->form = new FtUsuarioAsistenciaForm($FtUsuarioAsistencia);
  }

  public function executeUpdate(sfWebRequest $request)
  {
    $this->forward404Unless($request->isMethod(sfRequest::POST) || $request->isMethod(sfRequest::PUT));
    $FtUsuarioAsistencia = FtUsuarioAsistenciaQuery::create()->findPk($request->getParameter('id'));
    $this->forward404Unless($FtUsuarioAsistencia, sprintf('Object FtUsuarioAsistencia does not exist (%s).', $request->getParameter('id')));
    $this->form = new FtUsuarioAsistenciaForm($FtUsuarioAsistencia);

    $this->processForm($request, $this->form);

    $this->setTemplate('edit');
  }

  public function executeDelete(sfWebRequest $request)
  {
    $request->checkCSRFProtection();

    $FtUsuarioAsistencia = FtUsuarioAsistenciaQuery::create()->findPk($request->getParameter('id'));
    $this->forward404Unless($FtUsuarioAsistencia, sprintf('Object FtUsuarioAsistencia does not exist (%s).', $request->getParameter('id')));
    $FtUsuarioAsistencia->delete();

    $this->redirect('asistencia/index');
  }

  protected function processForm(sfWebRequest $request, sfForm $form)
  {
    $form->bind($request->getParameter($form->getName()), $request->getFiles($form->getName()));
    if ($form->isValid())
    {
      $FtUsuarioAsistencia = $form->save();

//      $this->redirect('asistencia/edit?id='.$FtUsuarioAsistencia->getId());
      $this->redirect('asistencia/index');
    }
  }
}
